package fun.ticsmyc.tools;

import org.junit.Test;

import java.util.Arrays;

/**
 * 对数器
 * @author Ticsmyc
 * @package fun.ticsmyc.tools
 * @date 2020-01-29 16:21
 */
public class ArrayTools {

    /**
     * 生成长度随机的数组。
     * 指定长度范围和数值范围
     * @param size
     * @param value
     * @return
     */
    public static int[] generateRandomArray(int size,int value){
        int[] arr= new int[(int)((size+1)*Math.random())];
        for(int i =0 ; i<arr.length;++i){
            arr[i] = (int) ((value+1)*Math.random())-(int)(value*Math.random());
        }
        return arr;
    }

    /**
     * 一个绝对正确的方法
     * @param arr
     */
    public static void rightSortMethod(int[] arr){
        Arrays.sort(arr);
    }

    /**
     * 打印数组
     * @param arr
     */
    public static void printArray(int[] arr){
        for(int i:arr){
            System.out.print(i+"\t");
        }
        System.out.println();
    }
    public static void printArray(boolean[] arr){
        for(boolean i:arr){
            System.out.print(i+"\t");
        }
        System.out.println();
    }
    public static void printArray(int[][] dp){
        for(int i=0;i<dp.length;++i){
            for(int j=0;j<dp[0].length;++j){
                System.out.print(dp[i][j]+"\t");
            }
            System.out.println();
        }
    }

    public static void printArray(boolean[][] dp){
        for(int i=0;i<dp.length;++i){
            for(int j=0;j<dp[0].length;++j){
                System.out.print(dp[i][j]+"\t");
            }
            System.out.println();
        }
    }


    /**
     * 交换
     * @param arr
     * @param i
     * @param j
     */
    public static void swap(int[] arr,int i,int j ){
        if(i == j ) return ;
        arr[i]=arr[i] ^ arr[j];
        arr[j]=arr[i] ^ arr[j];
        arr[i]=arr[i] ^ arr[j];
    }

    @Test
    public void testSwap(){
        int[] arr= new int[]{1,2};
        ArrayTools.printArray(arr);
        swap(arr,1,1);
        ArrayTools.printArray(arr);
    }

}
